package v1

import (
	catAuth "cat-collage-backend/internal/controllor/v1/auth/cat"
	"cat-collage-backend/internal/controllor/v1/auth/cat_hobby"
	"cat-collage-backend/internal/controllor/v1/auth/file"
	userAuth "cat-collage-backend/internal/controllor/v1/auth/user"
	catNoAuth "cat-collage-backend/internal/controllor/v1/noAuth/cat"
	userNoAuth "cat-collage-backend/internal/controllor/v1/noAuth/user"
	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

func SetupV1Group(routerWithAuth *gin.RouterGroup, routerWithoutAuth *gin.RouterGroup, db *gorm.DB) {
	// 不需要鉴权的接口
	// 登录
	routerWithoutAuth.POST("/login", func(context *gin.Context) {
		userNoAuth.Login(context, db)
	})
	// 注册
	routerWithoutAuth.POST("/regist", func(context *gin.Context) {
		userNoAuth.Regist(context, db)
	})
	// 获取所有猫咪信息
	routerWithoutAuth.GET("/get-cats", func(context *gin.Context) {
		catNoAuth.GetAllCats(context, db)
	})

	// 需要鉴权的接口
	// 获取用户信息
	routerWithAuth.POST("/get-user-info", func(context *gin.Context) {
		userAuth.GetUserInfo(context, db)
	})

	// 修改密码
	routerWithAuth.POST("/reset-password", func(context *gin.Context) {
		userAuth.ResetPassword(context, db)
	})
	// 根据个人信息获取猫咪信息
	routerWithAuth.GET("/get-cats/:ownerId", func(context *gin.Context) {
		catAuth.GetCatsByOwner(context, db)
	})
	// 根据猫咪 id 更新猫咪信息
	routerWithAuth.POST("/update-cats", func(context *gin.Context) {
		catAuth.UpdateCats(context, db)
	})
	// 根据猫咪 id 删除猫咪信息
	routerWithAuth.POST("/delete-cats", func(context *gin.Context) {
		catAuth.DeleteCats(context, db)
	})
	// 添加猫咪信息
	routerWithAuth.POST("/add-cats", func(context *gin.Context) {
		catAuth.AddCats(context, db)
	})
	// hobby 相关
	// 添加猫咪hobby信息
	routerWithAuth.POST("/add-cat-hobby", func(context *gin.Context) {
		cat_hobby.AddCatsHobby(context, db)
	})

	// 删除猫咪hobby信息
	routerWithAuth.POST("/delete-cat-hobby", func(context *gin.Context) {
		cat_hobby.DeleteCatsHobby(context, db)
	})

	// 文件相关
	// 上传文件
	routerWithAuth.POST("/upload-file", func(context *gin.Context) {
		file.UploadFile(context, db)
	})
}
